#ifndef OSM_RELATION_H
#define OSM_RELATION_H

#include <vector>
#include <QMultiMap>

#include <QList>
#include <QString>

class OSMRelation
{
    public:
        OSMRelation();

        unsigned int getId();
        void setId(unsigned int id);
        const QMap<QString, QString>* getFeatures();

        void addNodeId(unsigned int nodeId);
        void addWayId(unsigned int wayId, const QString& role);
        void addRelationId(unsigned int relationId);
        void addFeature(const QString& key, const QString& value);

        QList<int> getOuterWays();
        QList<int> getInnerWays();

        bool isMultipolygon();

        unsigned int m_id;
        std::vector<unsigned int> m_nodeIds;
        QMultiMap<QString, int> m_wayIds;
        std::vector<unsigned int> m_relationIds;

        QMap<QString, QString> m_features;
};

#endif // OSM_RELATION_H